
// Match whole word
export function matchesWholeWord (needle, haystack) {
    return new RegExp('\\b' + needle + '\\b').test(haystack)
}

export function fuzzyMatchesWholeWord (needle, haystack) {
    return matchesWholeWord ( needle.toLowerCase() , haystack.toLowerCase() )
}

export function eitherMatches (stringARaw, stringBRaw) {
    // Make strings lowercase for more generous comparison
    const stringA = stringARaw.toLowerCase()
    const stringB = stringBRaw.toLowerCase()

    const stringALength = stringA.length
    const stringBLength = stringB.length

    // If string lengths are equal
    // then just compare the equality of the strings
    if (stringALength === stringBLength) {
        // console.log('Strings are equal length', stringA, stringB)
        return (stringA === stringB)
    }

    // If string A is larger
    // then find string B within it
    if (stringALength > stringBLength) {
        // console.log('String A is bigger', stringA, stringB)
        return matchesWholeWord( stringB, stringA )
    }

    // If string B is larger
    // then find string A within it
    // console.log('String B is bigger', stringA, stringB)
    return matchesWholeWord( stringA, stringB )
}
